The present invention generally relates to the computer systems, methods, and software for responding to remote client requests. More specifically, embodiments of the present invention pertain to responding to remote clients with content selected based on when the request is made.
Typical Web systems employ HTTP (Hypertext Transfer Protocol) as a communication protocol used between a Web browser and a Web server (i.e., HTTP server). In HTTP, communication is initiated by the Web browser. Namely, one HTTP communication is comprised of an HTTP request issued by the Web browser and an HTTP response returned by the Web server in response to the HTTP request.
Referring now to FIG. 1, a response 100 from a web server typically includes a response header 101 and a body 102. The header 101 may include cookies 110, such as a session id 111 which the Web browser can return to associate future requests with a single session. The body 102 typically comprises an HTML “page” 120 that includes both data and formatting information for display to a user of the Web browser. Many conventional Web applications divide a display area into interface components (e.g., portlets, sidebars, banners, etc.), where each component is associated with a particular task or type of data and given a portion of the Web browser display area.
FIG. 2 shows an exemplary web page display area 240 with a banner area 241, and sidebar area 242, and a main body area 243. Sidebar area 242 is further divided into areas 245, 246, and 247. These interface components may be incorporated within the body of a response within HTML sections such as <div> tags 141, 142, and 143 of FIG. 1) or may be references to external data (e.g., data to be retrieved by further HTTP requests) with HTML sections such as <iframe> tags 145, 146, and 147. An HTML page may also include interface components such as cascading style sheets (CSS) (e.g., <style> tag 132) and JavaScript code (e.g., <script> tag 131) to further define and/or customize the layout, formatting, behavior, and other attributes of the HTML page.
The user of a Web browser typically communicates with the Web server via a series of HTTP requests and responses. Each response typically provides links or other interface affordances (e.g., forms, JavaScript actions, etc.) to retrieve data and/or to perform tasks. Typically, a web page is built from the same set of interface components every time the user accesses a given Web page or application, unless new features or added or the user manually changes one or more of the interface components. For example, in a portal application the user may have configured a sports section, a financial news section, and a stock price section. When the user visits the portal Web application, the interface components are selected from the sections selected by the user. The same interface components are selected displayed every time the user visits the “home” page of the Web application. Thus, the user interface for a Web application generally remains the same, independent of the time of day, day of the week, day of the year, etc.